home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 (Walnut Creek) / Aminet - June 1993 [Walnut Creek].iso / aminet / biz / demo / tdsdemo.lha / TDSDemo / tds.doc < prev    next >
Text File  |  1993-03-29  |  19KB  |  699 lines

  1.                     Twilight Development System
  2.                  Copyright 1993 Twilight Software
  3.  
  4. Written by Claudio Zani
  5. Via Liuzzi 1
  6. 42020 Cadelbosco Sotto (RE)
  7. Tel. 0522/911710
  8. InterNet: zani@cs.unibo.it
  9.  
  10. 1. Introduction
  11.  
  12. Twilight Development System (TDS) provides an integrated
  13. environment for writing and compiling source files like Turbo
  14. Pascal or Borland C++. Its main feature is to simplify and speed
  15. up the development of programs composed of different source files
  16. (modules). With TDS it's possible to compile and link these
  17. modules into an executable file with a single command and if the
  18. compiler finds some errors, they will be reported directly by the
  19. editor. TDS doesn't provide its own compiler, but can use any
  20. compiler or assembler callable from CLI. It has internal message
  21. converters for DICE C, SAS C (former LATTICE C), Aztec C, DevPac
  22. Assembler and it's possible to write custom converters for any
  23. other compiler.
  24.  
  25. TDS is composed of 3 programs:
  26.  
  27. Twilight Editor (TED)
  28. Twilight Make (TMAKE)
  29. Twilight Reference Generator (TREFS)
  30.  
  31. 1.1. Twilight Editor (TED)
  32.  
  33. TED is a text editor with many functions to support the creating
  34. and editing of source files. The number of files which can be open
  35. at the same time is limited only by the amount of free memory and
  36. so is the length of a single text line. For every file Ted
  37. remembers the changes done and allows with UNDO and REDO to go
  38. back through the changes. There are also functions to handle
  39. blocks and to search for strings in the file.
  40.  
  41. But the main feature is the project manager which handles the
  42. compiling and linking of the source files. After entering the
  43. names of the source files and the options for the compiler,
  44. assembler and linker in the project, the user can start the
  45. compiling process with the command BUILD. To execute this command
  46. TED relies on the second program called Twilight Make (TMAKE)
  47. described below, which runs concurrently to the editor, so it's
  48. possible to continue to edit the source files while the compiler
  49. is working.
  50.  
  51. to start TED
  52. - on the Workbench click on the icon called TED
  53. - on the CLI write "run ted file(s)"
  54.  
  55. 1.2. Twilight Make (TMAKE)
  56.  
  57. TMAKE is similar to the program 'make' used in the development of
  58. programs composed of more than one source file. It checks every
  59. source file if it has been modified and depending on the file
  60. extension (for example '.c' or '.asm') compiles or assembles it.
  61. Then it links all the object files together to obtain the
  62. executable file. TMAKE doesn't use 'makefiles', but instead relies
  63. on project files which can be created with TED. It has been
  64. designed to interface to the most popular compilers like the SAS C
  65. (former Lattice C), Aztec C, DICE C and assemblers like the
  66. DevPac. It's also possible to write a custom message converter if
  67. the compiler used is not supported. TMAKE can also be used as a
  68. standalone program from CLI to build projects created with Ted.
  69.  
  70. to run TMAKE
  71. - tmake -a -fsource_file project_file
  72.  
  73. with -a it recompiles all source files in the project
  74. with -f only a single source file will be compiled
  75.  
  76. 1.3. Twilight Reference Generator (TREFS)
  77.  
  78. TREFS generates reference files used by the FIND REFERENCE command
  79. of the menu SEARCH. With this command it's possible to get
  80. information about a particular keyword, e.g. moving the cursor to
  81. the word Window and pressing the HELP key will result in the
  82. loading of the file "intuition.h" and the editor positioning the
  83. cursor on the start of the definition of the structure Window.
  84.  
  85. to run TREFS
  86. - trefs reference_file source_file(s) (it supports wildcards)
  87.  
  88. 1.4 Installation
  89.  
  90. To install TDS copy all files in a directory and execute
  91. "assign TDS: directory" on the CLI. If you use the program from CLI
  92. add "path TDS: add" to the shell-startup. With Kickstart 1.3
  93. TDS uses the arp.library which must be copied into LIBS:.
  94.  
  95. 2. Menus
  96.  
  97. 2.1. Menu FILE
  98.  
  99. This menu contains the commands to open, insert, save and close
  100. the source files and to hide and reveal the windows. The number of
  101. windows which can be open at the same time depends only from the
  102. amount of free memory.
  103.  
  104. NEW
  105. opens a new window and creates an empty file
  106.  
  107. OPEN...
  108. opens a new window and loads a file
  109.  
  110. LOAD...
  111. loads a file in the current window
  112.  
  113. INSERT...
  114. inserts a file in the current file at the cursor position
  115.  
  116. SAVE
  117. saves the file with the current name
  118.  
  119. SAVE AS...
  120. saves the file with a new name
  121.  
  122. SAVE CHANGED
  123. saves all files which have been modified
  124.  
  125. HIDE (CTRL-H)
  126. hides the current window, but the contents of the file remains in
  127. memory
  128.  
  129. REVEAL... (CTRL-R)
  130. opens a requester listing all the files currently in memory
  131. including those hidden. With this requester the user can select
  132. the file he/she wants to edit or to reveal a file which has been
  133. hidden.
  134.  
  135. CLOSE
  136. closes the current window disposing the file (has the same effect
  137. as selecting the close gadget of the window)
  138.  
  139. ABOUT
  140. displays some information about the program and the amount of free
  141. memory
  142.  
  143. SLEEP (F10)
  144. This command puts TED in sleep mode. It closes all windows and the
  145. screen, but all files remain in memory. The files which has been
  146. modified will be saved. To
  147. wake up the editor it's necessary to press the left CTRL-SHIFT-ALT-
  148. F10.
  149.  
  150. QUIT
  151. quits the program
  152.  
  153. 2.2. Menu EDIT
  154.  
  155. This menu contains all the commands necessary to handle selected
  156. portions of the file (blocks). To select a block simply position
  157. the mouse pointer at the start of the block and click the left
  158. mouse button, then drag the mouse with the left button pressed to
  159. the end of the block and finally release the button. Double
  160. clicking the left button selects the word under the mouse pointer,
  161. while holding down also the SHIFT key will select all the line.
  162. Once a block has been selected it's possible to use one of the
  163. following commands:
  164.  
  165. CUT
  166. cuts the block and copies it into the clipboard
  167.  
  168. COPY
  169. copies the block into the clipboard without modifying the file
  170.  
  171. PASTE
  172. if there is a block selected then it will be replaced with the
  173. contents of the clipboard, otherwise the contents of the clipboard
  174. will be inserted at the position of the cursor
  175.  
  176. ERASE
  177. erases the block without copying it into the clipboard
  178.  
  179. SAVE...
  180. saves the block as a file on the disk
  181.  
  182. INDENT >>
  183. has a submenu with 2 options:
  184.  
  185.     FORWARD
  186.     moves the block one position to the right
  187.     
  188.     BACKWARD
  189.     moves the block one position to the left
  190.  
  191. The following commands are used to step forward or backward
  192. through the changes done to the file. TED remembers for each file
  193. a maximum number of changes which can be modified with the command
  194. EDITOR... from the menu SETTINGS.
  195.  
  196. UNDO
  197. steps backward one change
  198.  
  199. REDO
  200. steps forward one change
  201.  
  202. 2.3. Menu SEARCH
  203.  
  204. This menu contains the commands for finding and replacing strings
  205. in the file, for jumping to a specified line, for finding the
  206. bracket which matches the one at the cursor and to get information
  207. about a particular keyword.
  208.  
  209. FIND...
  210. opens a requester in which the user writes the string to find and
  211. sets the following search options:
  212.  
  213.     CASE SENSITIVE
  214.     distinguishes between upper and lower case
  215.     
  216.     WORDS ONLY
  217.     finds only strings surrounded by spaces
  218.     
  219.     GLOBAL SEARCH
  220.     searches through all open files
  221.     
  222.     WILDCARDS
  223.     uses '?' as a wildcard which matches any character
  224.  
  225. REPLACE...
  226. opens a requester with the string to find, the string to replace
  227. and the search options
  228.  
  229. REPEAT LAST
  230. repeats the last operation (find or replace) without opening a
  231. requester
  232.  
  233. MATCH BRACKET (CTRL-M)
  234. finds the matching bracket to the bracket at the cursor
  235. for example: '(' matches ')'
  236.  
  237. FIND REFERENCE (HELP)
  238. Searches the word on the cursor in the reference files and if it
  239. exists, load the file it references and moves the cursor to the
  240. line in which it has been defined.
  241.  
  242. GOTO LINE...
  243. opens a requester with the number of the line to jump
  244.  
  245. 2.4. Menu COMPILE
  246.  
  247. In this menu are the commands to compile source files, to build an
  248. entire executable program and to run and debug it. All the
  249. commands use the project file defined by the commands of the menu
  250. PROJECT.
  251.  
  252. COMPILE
  253. compiles the source file in the current window
  254.  
  255. BUILD
  256. builds the executable file compiling only the source files which
  257. has been modified
  258.  
  259. BUILD ALL
  260. builds the executable file compiling all the source files even if
  261. they have not been modified
  262.  
  263. RUN
  264. runs the executable file
  265.  
  266. DEBUG
  267. runs the debugger
  268.  
  269. NEXT ERROR
  270. PREVIOUS ERROR
  271. if one of the previous commands has reported some errors, these
  272. commands can be used to position the cursor on the line(s) where
  273. the error occurred and displaying the error message.
  274.  
  275. LOAD ERRORS
  276. loads the error file as it has been created by the compiler or the
  277. linker
  278.  
  279. The commands COMPILE, BUILD and BUILD ALL are not built into the
  280. editor, but their execution is demanded to TMAKE. When one of
  281. these commands has been selected, TED starts TMAKE which executes
  282. the command and if it finds some errors, returns an error list to
  283. TED. Using the multitasking facilities of the operating system
  284. TMAKE runs in background, so the user can continue to edit his/her
  285. source files. Also these commands open a console window on the
  286. Workbench where it's possible to follow the compiling process and
  287. to interrupt it with Ctrl-C.
  288.  
  289. 2.5. Menu PROJECT
  290.  
  291. This menu contains all the commands necessary to create, open and
  292. save project files. The project file contains the names of the
  293. source files (modules) of the program, the options for the
  294. compiler, assembler, linker and debugger and the work directories.
  295. Once the user has created a project, he/she can use the commands
  296. COMPILE, BUILD and BUILD ALL in the menu COMPILE to compile a
  297. single source file or to rebuild the entire executable file.
  298.  
  299. NEW
  300. creates a new project
  301.  
  302. OPEN...
  303. opens an existing project
  304.  
  305. SAVE
  306. saves the project with the current name
  307.  
  308. SAVE AS...
  309. saves the project with a new name (the project file extension must
  310. be '.prj')
  311.  
  312. MODULES...
  313. opens a requester where the user can insert the names of the
  314. modules and which has the following buttons:
  315.  
  316.     ADD...
  317.     adds a source file to the list
  318.     
  319.     REMOVE
  320.     removes the current source file from the list
  321.     
  322.     EDIT
  323.     edits the current source file
  324.     
  325.     UP
  326.     moves the source file up one position
  327.     
  328.     DOWN
  329.     moves the source file down one position
  330.  
  331. OPTIONS...
  332. opens a requester with the options for the compiler, assembler,
  333. linker and debugger and has the following gadgets:
  334.  
  335.     PROGRAM NAME
  336.     name of the executable file
  337.     
  338.     PROGRAM ARGUMENTS
  339.     arguments for the program (used by RUN and DEBUG)
  340.     
  341.     OBJECT DIRECTORY
  342.     directory for the object files
  343.     
  344.     SOURCE DIRECTORY
  345.     list of directories where to search source and include files
  346.     
  347.     ADD...
  348.     adds a directory to the source directories
  349.     
  350.     REMOVE
  351.     removes a directory from the source directories
  352.     
  353.     COMPILER...
  354.     opens the requester with the options for the compiler
  355.     
  356.     ASSEMBLER...
  357.     opens the requester with the options for the assembler
  358.     
  359.     LINKER...
  360.     opens the requester with the options for the linker
  361.     
  362.     DEBUGGER...
  363.     opens the requester with the options for the debugger
  364.     
  365.     COMMAND...
  366.     opens the requester with the options for the execution of the
  367.     commands
  368.  
  369. 2.5.1. Requester COMPILER...
  370.  
  371. This requester contains the options for the compiler:
  372.  
  373. COMMAND
  374. command name of the compiler:
  375. e.g. "lc" (for SAS C)
  376.  
  377. OPTIONS
  378. command options for the compiler:
  379.  
  380. "%src","%obj","%err" have a special meaning:
  381.  
  382. "%src" stands for the source file
  383. "%obj" stands for the object file
  384. "%err" stands for the error file (if not present, then standard
  385. output will
  386.                                   be used)
  387. e.g. "-d -o%obj %src" and the source file "text.c" becomes
  388.      "-d -otest.o test.c".
  389.  
  390. EXTENSION
  391. sets the file extension of the source files for the compiler
  392.  
  393. MESSAGES
  394. sets the type of messages returned by the compiler (SAS C, Aztec
  395. C, DICE C, Custom). With Custom it's possible to use a custom
  396. message converter. TMAKE will execute this converter after having
  397. received the error messages from the compiler and passing them to
  398. the standard input. After the conversion the error messages must
  399. be passed to the standard output with the following format:
  400.  
  401. "<test.c> 10 E <Error Message>" for an error
  402. "<test.c> 21 W <Error Message>" for a warning
  403.  
  404. <test.c>     : source file
  405. 10          : line
  406. E or W       : error or warning
  407. <Error Message>    : error message
  408.  
  409. The name of the converter has to be set with CONVERTER.
  410.  
  411. IGNORE WARNINGS
  412. ignores any warning messages
  413.  
  414. CHECK HEADERS
  415. option used only for C source files: if set TMAKE checks for every
  416. source file if an include file has been modified. If so it
  417. compiles the source file.
  418. The checking will be done only for include files in this format:
  419.  
  420. #include "defs.h"
  421.  
  422. and not for:
  423.  
  424. #include <exec/types.h>
  425.  
  426. 2.5.2. Requester ASSEMBLER...
  427.  
  428. This requester contains the options for the assembler:
  429.  
  430. COMMAND
  431. command name of the assembler:
  432. e.g. "genim2" (for DevPac)
  433.  
  434. OPTIONS
  435. command options for the assembler:
  436.  
  437. "%src","%obj","%err" have a special meaning:
  438.  
  439. "%src" stands for the source file
  440. "%obj" stands for the object file
  441. "%err" stands for the error file (if not present, then standard
  442. output will
  443.                                   be used)
  444. e.g. "-d -o%obj %src" and the source file "text.asm" becomes
  445.      "-d -otest.o test.asm".
  446.  
  447. EXTENSION
  448. sets the file extension of the source files for the assembler
  449.  
  450. MESSAGES
  451. sets the type of messages returned by the assembler (DevPac, SAS
  452. C, Aztec C, DICE C, Custom). With Custom it's possible to use a
  453. custom message converter. TMAKE will execute this converter after
  454. having received the error messages from the assembler and passing
  455. them to the standard input. After the conversion the error
  456. messages must be passed to the standard output with the following
  457. format:
  458.  
  459. "<test.asm> 10 E <Error Message>" for an error
  460. "<test.asm> 21 W <Error Message>" for a warning
  461.  
  462. <test.asm>        : source file
  463. 10          : line
  464. E or W       : error or warning
  465. <Error Message>    : error message
  466.  
  467. The name of the converter has to be set with CONVERTER.
  468.  
  469. IGNORE WARNINGS
  470. ignores any warning messages
  471.  
  472. 2.5.3. Requester LINKER...
  473.  
  474. This requester contains the options for the linker:
  475.  
  476. COMMAND
  477. command name of the linker:
  478. e.g. "blink" (for SAS C)
  479.  
  480. OPTIONS
  481. command options for the linker:
  482.  
  483. "%lnk","%exe","%err" have a special meaning:
  484.  
  485. "%lnk" stands for the file containing the names of the object
  486. files
  487. "%exe" stands for the executable file
  488. "%err" stands for the error file (if not present, then standard
  489. output will
  490.                                   be used)
  491.  
  492. e.g. "lib:c.o WITH %lnk TO %exe LIB lib:lc.lib lib:amiga.lib"
  493. becomes
  494.      "lib:c.o WITH test.lnk TO test LIB lib:lc.lib lib:amiga.lib"
  495.  
  496. EXTENSION
  497. sets the file extension of the object files
  498.  
  499. 2.5.4. Requester DEBUGGER...
  500.  
  501. This requester contains the options for the debugger:
  502.  
  503. COMMAND
  504. command name of the debugger:
  505. e.g. "monam2" (for DevPac)
  506.  
  507. OPTIONS
  508. command options for the debugger:
  509.  
  510. "%exe","%arg" have a special meaning:
  511.  
  512. "%exe" stands for the executable file
  513. "%arg" stands for the arguments
  514.  
  515. 2.5.5 Requester COMMAND...
  516.  
  517. This requester contains the options for the execution of the
  518. commands:
  519.  
  520. COMMAND PATH
  521. list of directories where to search the commands
  522.  
  523. ADD...
  524. adds a directory to the list
  525.  
  526. REMOVE
  527. removes the current directory from the list
  528.  
  529. STACKSIZE
  530. stack size used by the commands
  531.  
  532. CONSOLE
  533. name of the console window
  534.  
  535. 2.6. Menu EXTRAS
  536.  
  537. UPPER CASE WORD (CTRL-K)
  538. converts the word at the cursor in upper case
  539.  
  540. LOWER CASE WORD (CTRL-L)
  541. converts the word at the cursor in lower case
  542.  
  543. FORMAT PARAGRAPH (CTRL-F)
  544. formats a portion of text called a paragraph. The paragraph starts
  545. at the cursor and ends with the first blank line. The margins of
  546. the paragraph can be set with the menu SETTINGS EDITOR... in LEFT
  547. MARGIN and RIGHT MARGIN.
  548.  
  549. 2.7. Menu SETTINGS
  550.  
  551. This menu contains the settings for the program:
  552.  
  553. AUTOINDENT
  554. activates the automatic indentation
  555.  
  556. WORDWRAP
  557. activates the automatic wordwrap at the end of a line
  558.  
  559. OVERSTRIKE
  560. activates the overstrike mode
  561.  
  562. CREATE ICONS?
  563. if set, TDS creates an icon for every file saved
  564.  
  565. EDITOR...
  566. opens a requester with the options for the editor:
  567.  
  568.     LANGUAGE
  569.     selection of the language (for now only English)
  570.     
  571.     AUTOINDENT
  572.     activates the automatic indentation
  573.     
  574.     WORDWRAP
  575.     activates the automatic wordwrap at the end of a line
  576.     
  577.     OVERSTRIKE
  578.     activates the overstrike mode
  579.     
  580.     STRIPBLANKS
  581.     removes any blanks and tabs from the end of the line which has
  582.     been modified
  583.     
  584.     AUTOSAVE
  585.     activates the autosave mode
  586.     
  587.     AUTOSAVE DELAY
  588.     sets the time for the autosave mode in minutes
  589.     
  590.     BACKUP
  591.     creates a backup file called *.bak for every file saved
  592.     
  593.     TABWIDTH
  594.     sets the width of the tab
  595.     
  596.     LEFT MARGIN
  597.     sets the left margin (used by WORDWRAP and FORMAT PARAGRAPH)
  598.     
  599.     RIGHT MARGIN
  600.     sets the right margin (used by WORDWRAP and FORMAT PARAGRAPH)
  601.     
  602.     MAX. CHANGES
  603.     sets the maximum number of changes recorded for every file
  604.     
  605.     PRIORITY
  606.     sets the priority of the process which runs the editor
  607.     
  608.     TOOLNAME
  609.     tool name used when creating icons
  610.     
  611. DISPLAY...
  612. opens a requester with the options for the screen:
  613.  
  614.     SCREEN TYPE
  615.     sets the type of the screen
  616.     
  617.     SCREEN WIDTH
  618.     sets the screen width
  619.     
  620.     SCREEN HEIGHT
  621.     sets the screen height
  622.     
  623.     CLONE WORKBENCH
  624.     clones the dimensions of the Workbench screen
  625.     
  626.     AUTOSIZE
  627.     if set, every new window will open at the maximum size
  628.     
  629.     FONT NAME
  630.     name of the font used
  631.     
  632.     FONT SIZE
  633.     size of the font used
  634.     
  635.     ASL REQUESTER
  636.     if set, TDS will use the ASL requesters (only for OS2.0 and
  637.     above)
  638.     
  639. REFERENCE...
  640. opens a requester with the list of the reference files:
  641.  
  642.     ADD...
  643.     adds a file to the list
  644.     
  645.     REMOVE
  646.     removes a file from the list
  647.     
  648. LOAD SETTINGS...
  649. loads the settings
  650.  
  651. SAVE SETTINGS
  652. saves the settings with the current name
  653.  
  654. SAVE SETTINGS AS...
  655. saves the settings with a new name
  656.  
  657. 3. Keyboard
  658.  
  659. CTRL-Y   deletes a line
  660. CTRL-U   inserts the last line deleted
  661. CTRL-Q   deletes till the end of the line
  662. CTRL-M   like menu command MATCH BRACKET
  663. CTRL-H   like menu command HIDE
  664. CTRL-R   like menu command REVEAL
  665. CTRL-F   like menu command FORMAT PARAGRAPH
  666. CTRL-L   like menu command LOWER CASE WORD
  667. CTRL-K   like menu command UPPER CASE WORD
  668. CTRL-S   start of block
  669. CTRL-E   end of block
  670. CTRL-n (F1)   next window
  671. CTRL-p (F2)   previous window
  672. F10     like menu command SLEEP
  673. HELP    like menu command FIND REFERENCE
  674.  
  675. 4. ARexx Interface
  676.  
  677. The ARexx Interface has many commands for moving the cursor,
  678. inserting and deleting text, loading and saving files etc. It also
  679. has a command to remap any key to a command or to a ARexx macro.
  680.  
  681. 5. Technical Notes
  682.  
  683. The programs have been written with the DICE C (thanks Matt) and
  684. the DevPac Assembler. They run on any Amiga with Kickstart 1.3, 2.0
  685. and 3.0.
  686.  
  687. 6. Improvements
  688.  
  689. - split mode for the windows
  690. - printing of the source files
  691. - record and replay of keyboard macros
  692. - automatic upper case conversion of single words
  693. - automatic syntax checker for C, Modula II, etc.
  694. - new screen modes available with OS2.0, OS3.0 and AGA
  695. - support for the local.library
  696.  
  697.  
  698.  
  699.